package com.dpkit.configuration;

import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * DPKit配置属性
 */
@ConfigurationProperties(prefix = "dpkit")
public class DPKitProperties {
    
    /**
     * 模板文件基础路径
     */
    private String templateLocation = "classpath:/dpkit-templates/";
    
    /**
     * 动态实体生成的基础包名
     */
    private String entityPackage = "com.dpkit.generated.entities";
    
    /**
     * 是否启用字节码增强
     */
    private boolean bytecodeEnhanced = true;
    
    /**
     * 默认ORM类型
     */
    private ORMType defaultOrmType = ORMType.AUTO;
    
    /**
     * 默认数据库类型
     */
    private DatabaseType defaultDatabaseType = DatabaseType.AUTO;
    
    public enum ORMType {
        AUTO, HIBERNATE, MYBATIS, JDBC
    }
    
    public enum DatabaseType {
        AUTO, MYSQL, POSTGRESQL, ORACLE
    }


    public String getTemplateLocation() {
        return templateLocation;
    }

    public void setTemplateLocation(String templateLocation) {
        this.templateLocation = templateLocation;
    }

    public String getEntityPackage() {
        return entityPackage;
    }

    public void setEntityPackage(String entityPackage) {
        this.entityPackage = entityPackage;
    }

    public boolean isBytecodeEnhanced() {
        return bytecodeEnhanced;
    }

    public void setBytecodeEnhanced(boolean bytecodeEnhanced) {
        this.bytecodeEnhanced = bytecodeEnhanced;
    }

    public ORMType getDefaultOrmType() {
        return defaultOrmType;
    }

    public void setDefaultOrmType(ORMType defaultOrmType) {
        this.defaultOrmType = defaultOrmType;
    }

    public DatabaseType getDefaultDatabaseType() {
        return defaultDatabaseType;
    }

    public void setDefaultDatabaseType(DatabaseType defaultDatabaseType) {
        this.defaultDatabaseType = defaultDatabaseType;
    }
}